package com.zz.jdk8.gc;

import java.util.WeakHashMap;

/**
 * @author zhr
 */
public class Tgc {
    public static void main(String[] args) {
        WeakHashMap<String, String> map = new WeakHashMap<String, String>();
        //将WeakHashMap中添加三个key-value对，
        //三个key都是匿名字符串对象(没有其他引用)

        String str = new String("str");

        map.put(str, str);
        map.put(new String("语文").intern(), new String("优"));
        map.put(new String("数学"), new String("良"));
        map.put(new String("英语"), new String("中"));
        //将WeakHashMap中添加一个key-value对，
        //该key是一个系统缓存的字符串对象。
        map.put("java", new String("不及格"));
        //输出map对象，将看到4个key-value对{java=不及格, 数学=良, 英语=中, 语文=优}
        System.out.println(map);

        //通知系统立即进行垃圾回收
        System.gc();
        System.runFinalization();
        //通常情况下，将只看到一个key-value对{java=不及格}
        System.out.println(map);



    }
}
